---
layout: "default"
title: "Protocols"
description: "Documentation for all protocols in the Swift language."
root: "/v2.1"
---

<div class="row">
<div class="col-sm-6">
<ul class="main-list">
<li><a href="/v2.1/protocol/AbsoluteValuable/">AbsoluteValuable</a></li>
<li><a href="/v2.1/protocol/AnyCollectionType/">AnyCollectionType</a></li>
<li><a href="/v2.1/protocol/AnyObject/">AnyObject</a></li>
<li><a href="/v2.1/protocol/ArrayLiteralConvertible/">ArrayLiteralConvertible</a></li>
<li><a href="/v2.1/protocol/BidirectionalIndexType/">BidirectionalIndexType</a></li>
<li><a href="/v2.1/protocol/BitwiseOperationsType/">BitwiseOperationsType</a></li>
<li><a href="/v2.1/protocol/BooleanLiteralConvertible/">BooleanLiteralConvertible</a></li>
<li><a href="/v2.1/protocol/BooleanType/">BooleanType</a></li>
<li><a href="/v2.1/protocol/CVarArgType/">CVarArgType</a></li>
<li><a href="/v2.1/protocol/CollectionType/">CollectionType</a></li>
<li><a href="/v2.1/protocol/Comparable/">Comparable</a></li>
<li><a href="/v2.1/protocol/CustomDebugStringConvertible/">CustomDebugStringConvertible</a></li>
<li><a href="/v2.1/protocol/CustomLeafReflectable/">CustomLeafReflectable</a></li>
<li><a href="/v2.1/protocol/CustomPlaygroundQuickLookable/">CustomPlaygroundQuickLookable</a></li>
<li><a href="/v2.1/protocol/CustomReflectable/">CustomReflectable</a></li>
<li><a href="/v2.1/protocol/CustomStringConvertible/">CustomStringConvertible</a></li>
<li><a href="/v2.1/protocol/DictionaryLiteralConvertible/">DictionaryLiteralConvertible</a></li>
<li><a href="/v2.1/protocol/Equatable/">Equatable</a></li>
<li><a href="/v2.1/protocol/ErrorType/">ErrorType</a></li>
<li><a href="/v2.1/protocol/ExtendedGraphemeClusterLiteralConvertible/">ExtendedGraphemeClusterLiteralConvertible</a></li>
<li><a href="/v2.1/protocol/FloatLiteralConvertible/">FloatLiteralConvertible</a></li>
<li><a href="/v2.1/protocol/FloatingPointType/">FloatingPointType</a></li>
<li><a href="/v2.1/protocol/ForwardIndexType/">ForwardIndexType</a></li>
<li><a href="/v2.1/protocol/GeneratorType/">GeneratorType</a></li>
<li><a href="/v2.1/protocol/Hashable/">Hashable</a></li>
<li><a href="/v2.1/protocol/Indexable/">Indexable</a></li>
<li><a href="/v2.1/protocol/IntegerArithmeticType/">IntegerArithmeticType</a></li>
<li><a href="/v2.1/protocol/IntegerLiteralConvertible/">IntegerLiteralConvertible</a></li>
<li><a href="/v2.1/protocol/IntegerType/">IntegerType</a></li>
<li><a href="/v2.1/protocol/IntervalType/">IntervalType</a></li>
<li><a href="/v2.1/protocol/LazyCollectionType/">LazyCollectionType</a></li>
<li><a href="/v2.1/protocol/LazySequenceType/">LazySequenceType</a></li>
<li><a href="/v2.1/protocol/MirrorPathType/">MirrorPathType</a></li>
<li><a href="/v2.1/protocol/MutableCollectionType/">MutableCollectionType</a></li>
<li><a href="/v2.1/protocol/MutableIndexable/">MutableIndexable</a></li>
<li><a href="/v2.1/protocol/MutableSliceable/">MutableSliceable</a></li>
<li><a href="/v2.1/protocol/NilLiteralConvertible/">NilLiteralConvertible</a></li>
<li><a href="/v2.1/protocol/OptionSetType/">OptionSetType</a></li>
<li><a href="/v2.1/protocol/OutputStreamType/">OutputStreamType</a></li>
<li><a href="/v2.1/protocol/RandomAccessIndexType/">RandomAccessIndexType</a></li>
<li><a href="/v2.1/protocol/RangeReplaceableCollectionType/">RangeReplaceableCollectionType</a></li>
<li><a href="/v2.1/protocol/RawRepresentable/">RawRepresentable</a></li>
<li><a href="/v2.1/protocol/ReverseIndexType/">ReverseIndexType</a></li>
<li><a href="/v2.1/protocol/SequenceType/">SequenceType</a></li>
<li><a href="/v2.1/protocol/SetAlgebraType/">SetAlgebraType</a></li>
</ul>
</div>
<div class="col-sm-6">
<ul class="main-list">
<li><a href="/v2.1/protocol/SignedIntegerType/">SignedIntegerType</a></li>
<li><a href="/v2.1/protocol/SignedNumberType/">SignedNumberType</a></li>
<li><a href="/v2.1/protocol/Streamable/">Streamable</a></li>
<li><a href="/v2.1/protocol/Strideable/">Strideable</a></li>
<li><a href="/v2.1/protocol/StringInterpolationConvertible/">StringInterpolationConvertible</a></li>
<li><a href="/v2.1/protocol/StringLiteralConvertible/">StringLiteralConvertible</a></li>
<li><a href="/v2.1/protocol/UnicodeCodecType/">UnicodeCodecType</a></li>
<li><a href="/v2.1/protocol/UnicodeScalarLiteralConvertible/">UnicodeScalarLiteralConvertible</a></li>
<li><a href="/v2.1/protocol/UnsignedIntegerType/">UnsignedIntegerType</a></li>
<li><a href="/v2.1/protocol/_ArrayBufferType/">_ArrayBufferType</a></li>
<li><a href="/v2.1/protocol/_ArrayType/">_ArrayType</a></li>
<li><a href="/v2.1/protocol/_CVarArgAlignedType/">_CVarArgAlignedType</a></li>
<li><a href="/v2.1/protocol/_CVarArgPassedAsDouble/">_CVarArgPassedAsDouble</a></li>
<li><a href="/v2.1/protocol/_CocoaStringType/">_CocoaStringType</a></li>
<li><a href="/v2.1/protocol/_CollectionWrapperType/">_CollectionWrapperType</a></li>
<li><a href="/v2.1/protocol/_ColorLiteralConvertible/">_ColorLiteralConvertible</a></li>
<li><a href="/v2.1/protocol/_DestructorSafeContainer/">_DestructorSafeContainer</a></li>
<li><a href="/v2.1/protocol/_DisallowMixedSignArithmetic/">_DisallowMixedSignArithmetic</a></li>
<li><a href="/v2.1/protocol/_FileReferenceLiteralConvertible/">_FileReferenceLiteralConvertible</a></li>
<li><a href="/v2.1/protocol/_ImageLiteralConvertible/">_ImageLiteralConvertible</a></li>
<li><a href="/v2.1/protocol/_Incrementable/">_Incrementable</a></li>
<li><a href="/v2.1/protocol/_IntegerArithmeticType/">_IntegerArithmeticType</a></li>
<li><a href="/v2.1/protocol/_IntegerType/">_IntegerType</a></li>
<li><a href="/v2.1/protocol/_MirrorType/">_MirrorType</a></li>
<li><a href="/v2.1/protocol/_NSArrayCoreType/">_NSArrayCoreType</a></li>
<li><a href="/v2.1/protocol/_NSCopyingType/">_NSCopyingType</a></li>
<li><a href="/v2.1/protocol/_NSDictionaryCoreType/">_NSDictionaryCoreType</a></li>
<li><a href="/v2.1/protocol/_NSDictionaryType/">_NSDictionaryType</a></li>
<li><a href="/v2.1/protocol/_NSEnumeratorType/">_NSEnumeratorType</a></li>
<li><a href="/v2.1/protocol/_NSFastEnumerationType/">_NSFastEnumerationType</a></li>
<li><a href="/v2.1/protocol/_NSSetCoreType/">_NSSetCoreType</a></li>
<li><a href="/v2.1/protocol/_NSSetType/">_NSSetType</a></li>
<li><a href="/v2.1/protocol/_NSStringCoreType/">_NSStringCoreType</a></li>
<li><a href="/v2.1/protocol/_ObjectiveCBridgeable/">_ObjectiveCBridgeable</a></li>
<li><a href="/v2.1/protocol/_PointerType/">_PointerType</a></li>
<li><a href="/v2.1/protocol/_RandomAccessAmbiguity/">_RandomAccessAmbiguity</a></li>
<li><a href="/v2.1/protocol/_Reflectable/">_Reflectable</a></li>
<li><a href="/v2.1/protocol/_ReverseCollectionType/">_ReverseCollectionType</a></li>
<li><a href="/v2.1/protocol/_SequenceWrapperType/">_SequenceWrapperType</a></li>
<li><a href="/v2.1/protocol/_ShadowProtocol/">_ShadowProtocol</a></li>
<li><a href="/v2.1/protocol/_SignedIntegerType/">_SignedIntegerType</a></li>
<li><a href="/v2.1/protocol/_SinkType/">_SinkType</a></li>
<li><a href="/v2.1/protocol/_Strideable/">_Strideable</a></li>
<li><a href="/v2.1/protocol/_StringElementType/">_StringElementType</a></li>
</ul>
</div>
</div>
